package cn.broadsense.biz.domain;

import cn.broadsense.biz.vo.ItemTagTemplateVo;
import cn.broadsense.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import lombok.Data;

/**
 * 事项标签模板
 * @TableName t_item_tag_template
 */
@TableName(value ="t_item_tag_template")
@Data
public class ItemTagTemplate implements Serializable {
    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 模板名称
     */
    @Excel(name = "模板名称",sort = 1,prompt = "必填")
    private String templateName;

    /**
     * 模板说明
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @Excel(name = "模板说明",sort = 2)
    private String templateSpecification;

    /**
     * 必填标签数量
     */
    @Excel(name = "模板必填标签",sort = 3,type = Excel.Type.EXPORT,prompt = "必填")
    private Integer requiredQty;

    /**
     * 导入模板标签名称
     */
    @Excel(name = "标签名称(多个用、隔开)",sort = 3,type = Excel.Type.IMPORT,width = 32)
    @TableField(exist = false)
    private String tagNames;

    /**
     * 模板启用状态 0未启用 1启用
     */
    @Excel(name = "模板状态",sort = 4,readConverterExp = "0=未启用,1=已启用")
    private Integer status;

    /**
     * 文字标签数量
     */
    private Integer textTagQty;

    /**
     * 文字标签必填数量
     */
    private Integer textTagRequiredQty;

    /**
     * 文字标签选填数量
     */
    private Integer textTagOptionalQty;

    /**
     * 颜色标签数量
     */
    private Integer colorTagQty;

    /**
     * 颜色标签必填数量
     */
    private Integer colorTagRequiredQty;

    /**
     * 颜色标签选填数量
     */
    private Integer colorTagOptionalQty;

    /**
     * 图文标签数量
     */
    private Integer imgTagQty;

    /**
     * 图文标签必填数量
     */
    private Integer imgTagRequiredQty;

    /**
     * 图文标签选填数量
     */
    private Integer imgTagOptionalQty;

    /**
     * 图标标签数量
     */
    private Integer iconTagQty;

    /**
     * 图文标签必填数量
     */
    private Integer iconTagRequiredQty;

    /**
     * 图文标签选填数量
     */
    private Integer iconTagOptionalQty;

    /**
     * 自定义标签数量
     */
    private Integer otherQty;

    /**
     * 自定义必填数量
     */
    private Integer otherRequiredQty;

    /**
     * 自定义选填数量
     */
    private Integer otherOptionalQty;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 更新人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @Excel(name = "更新时间",sort = 5,dateFormat = "yyyy-MM-dd HH:mm",type = Excel.Type.EXPORT)
    private Date updateTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @TableField(exist = false)
    private List<ItemTagTemplateDetails> detailsList;

    @TableField(exist = false)
    private List<ItemTagTemplateVo.ItemTagTemplateDetailVo> detailVoList;
}